﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Hisun.Controllers;
using Hisun.Models;
using Hisun.UserControl;
using System.Text;


namespace Hisun.View.Management
{
    public partial class RoleManagement : AbcPageBase
    {
        HisunDBDataContext db = new HisunDBDataContext();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            { 
            
            BindMyData(0);
            } 
        }


        #region 绑定数据及翻页
        private void BindMyData(int PageIndex)
        {

            int skipAccount = PageIndex * 20;

            var MyQuery = (from a in db.TSCRB_JS_Role select a).Skip(skipAccount).Take(20);
            GridView_Roles.DataSource = MyQuery;
            GridView_Roles.DataBind();

        }

        //查询出当前记录信息的总条数。
        private int TotalPageAmount()
        {
            int MyQuery = 0;
            MyQuery = (from a in db.TSCRB_JS_Role select a).Count();
            return MyQuery;
        }


        //点击按钮，执行查询
        protected void MyClick(object sender, EventArgs e)
        {


            int pageIndx = Convert.ToInt32(CurrentPage.Value);
            int Totals = TotalPageAmount();



            int pages = (Totals % 20) == 0 ? (Totals / 20) : (Totals / 20 + 1);

            Label_Total.Text = "共" + pages.ToString();

            if (typeof(Button).IsInstanceOfType(sender))
            {
                string arg = ((Button)sender).CommandArgument.ToString().ToLower();

                switch (arg)
                {
                    case "first":

                        pageIndx = 0;

                        break;
                    case "gotopage":
                        pageIndx = Convert.ToInt32(TextBox_PageIndex.Text) - 1;
                        break;
                }

            }
            else if (typeof(LinkButton).IsInstanceOfType(sender))
            {

                string arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();

                switch (arg)
                {
                    case "prev":
                        if (pageIndx > 0)
                        {
                            pageIndx = pageIndx - 1;
                        }
                        break;
                    case "next":
                        if (pageIndx < pages - 1)
                        {
                            pageIndx = pageIndx + 1;
                        }
                        break;
                    case "last":
                        pageIndx = pages - 1;
                        break;
                    case "first":
                        pageIndx = 0;
                        break;
                }

            }

            CurrentPage.Value = pageIndx.ToString();  //对保存页码状态信息的隐藏字段进行赋值。保存当前页码。
            Label_CurrenPageAndTo.Text = "页，当前第" + (pageIndx + 1).ToString() + " 页，转到";

            BindMyData(pageIndx);

        }

        #endregion


        protected void Button_Add_Command(object sender, CommandEventArgs e)
        {
            Panel_RoleList.Visible = false;
            Panel_Edit.Visible = true;

            TextBox_Name.Text = "";

        }

        protected void Button_Save_Command(object sender, CommandEventArgs e)
        {
            TSCRB_JS_Role myNewRow = new TSCRB_JS_Role();
            myNewRow.角色名称 = TextBox_Name.Text;
            if (CheckBox_SystemRole.Checked)
            {
                myNewRow.系统角色 = true;
                myNewRow.用户角色 = false;
            }
            else 
            {
                myNewRow.系统角色 = false;
                myNewRow.用户角色 = true;
            }

            db.TSCRB_JS_Role.InsertOnSubmit(myNewRow);
            try
            {
                db.SubmitChanges();
                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "message", " <script>alert('增加成功'); </script>");

                Panel_RoleList.Visible = true;
                Panel_Edit.Visible = false;
                BindMyData(0);
            }
            catch {


                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "message", " <script>alert('增加失败'); </script>");
            }
        }

        protected void Button_Cancel_Command(object sender, CommandEventArgs e)
        {
            TextBox_Name.Text = "";
            Panel_RoleList.Visible = true;
            Panel_Edit.Visible = false;
        }

        protected void Button_Edit_Command(object sender, CommandEventArgs e)
        {
           Label_RoleInfo.Text =e.CommandArgument.ToString();
              
        }

        protected void Button_Del_Command(object sender, CommandEventArgs e)
        {
            int myid = Convert.ToInt32(e.CommandArgument.ToString());
            var myDelQuery = (from a in db.TSCRB_JS_Role where a.角色ID == myid select a).Single();
            db.TSCRB_JS_Role.DeleteOnSubmit(myDelQuery);
           
            try
            {
                db.SubmitChanges();
                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "message", " <script>alert('删除成功'); </script>");
                BindMyData(0);

            }
            catch
            {


                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "message", " <script>alert('删除失败'); </script>");
            }
        }





        protected void Button_Right_Command(object sender, CommandEventArgs e)
        {
          
            string myid = e.CommandArgument.ToString();

            Response.Redirect("RoleManagementSelect.aspx?roleid=" + myid);
        }






    }
}
